package pe.edu.sistemas.sisdiho.repositories;

import java.sql.Time;
import java.util.Collection;
import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import pe.edu.sistemas.sisdiho.entities.HorarioClase;
import pe.edu.sistemas.sisdiho.mappers.HorarioClaseMapper;

@Repository
public class HorarioClaseRepository {
	@Autowired
	private HorarioClaseMapper horarioClaseMapper;
	
	public List<HorarioClase> obtenerHorariosClase(){
		return horarioClaseMapper.obtenerHorariosClase();
	}
	
	public List<HorarioClase> obtenerHorariosClasexPeriodoyDia(String periodo, int dia){
		return horarioClaseMapper.obtenerHorariosClasexPeriodoyDia(periodo, dia);
	}
	
	public List<HorarioClase> obtenerHorariosClasexPeriodoxDiayHora(String periodo, int dia, String hInicio, String hFin){
		return horarioClaseMapper.obtenerHorariosClasexPeriodoxDiayHora(periodo, dia, hInicio, hFin);
	}
	
	public List<HorarioClase> obtenerHorariosxDiaxDocentexPeriodo(int dia,int idDocente,String periodo){
		return horarioClaseMapper.obtenerHorariosxDiaxDocentexPeriodo(dia,idDocente,periodo);
	}
	
	public List<HorarioClase> obtenerHorariosOrdenadosxDiaxDocentexEscuelaxPeriodo(int idDocente,  int idEscuela,String periodo){
		return horarioClaseMapper.obtenerHorariosOrdenadosxDiaxDocentexEscuelaxPeriodo(idDocente, idEscuela, periodo);
	}
	
	public List<HorarioClase> obtenerHorariosxDiaxDocentexPeriodoxEscuela( int dia,int idDocente, String periodo, int idEscuela){
		
		return horarioClaseMapper.obtenerHorariosxDiaxDocentexPeriodoxEscuela(dia, idDocente, periodo,idEscuela);
	}
	
	public List<HorarioClase> obtenerHorariosxGrupo(int grupoId){
		return horarioClaseMapper.obtenerHorariosxGrupo(grupoId);
	}
	
	public List<HorarioClase> obtenerHorariosxGrupoxPeriodo(int idGrupo, String periodo){
		return horarioClaseMapper.obtenerHorariosxGrupoxPeriodo(idGrupo, periodo);
	}

	public void crearNuevoHorario(int idGrupo, String tipoClase, int dia,
			int idDocente, String horaInicio, String horaFin, String periodoNombre, String aula) {
		horarioClaseMapper.crearNuevoHorario(idGrupo, tipoClase, dia, idDocente, horaInicio, horaFin, periodoNombre, aula);
	}
	
	public List<HorarioClase> obtenerHorariosCrucexDiaxDocentexPeriodo(
			int idDocente, int dia, Time hInicio, Time hFin, String periodo){
		return horarioClaseMapper.obtenerHorariosCrucexDiaxDocentexPeriodo(idDocente,dia,hInicio,hFin,periodo);
	}
	
	public void eliminarHorario(int idHorario){
		horarioClaseMapper.eliminarHorario(idHorario);
	}

	public void modificarHorario(int idHorarioClase, String hInicio,
			String hFin, int dia, int getidDocente, String horarioClaseTipo, String aula) {
		horarioClaseMapper.modificarHorario(idHorarioClase, hInicio,
				hFin, dia, getidDocente, horarioClaseTipo, aula);
	}

	public HorarioClase obtenerHoraroxIdHorario(int idHorarioClase) {
		return horarioClaseMapper.obtenerHoraroxIdHorario(idHorarioClase);
	}

	public Collection<? extends HorarioClase> obtenerHorariosxGrupoxPeriodoxDia(
			int idGrupo, int dia, String periodo) {
		return horarioClaseMapper.obtenerHorariosxGrupoxPeriodoxDia(idGrupo, dia, periodo);
	}
}